<?php
/*
 * Copyright (c) 2017-2025 Tencent. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
namespace TencentCloud\Waf\V20180125\Models;
use TencentCloud\Common\AbstractModel;

/**
 * DescribeModuleStatus response structure.
 *
 * @method integer getWebSecurity() Obtain Whether web security rules are enabled
 * @method void setWebSecurity(integer $WebSecurity) Set Whether web security rules are enabled
 * @method integer getAccessControl() Obtain Whether access control rule is enabled
 * @method void setAccessControl(integer $AccessControl) Set Whether access control rule is enabled
 * @method integer getCcProtection() Obtain Whether CC protection is enabled.
 * @method void setCcProtection(integer $CcProtection) Set Whether CC protection is enabled.
 * @method integer getAntiTamper() Obtain Whether web tamper-proof is enabled
 * @method void setAntiTamper(integer $AntiTamper) Set Whether web tamper-proof is enabled
 * @method integer getAntiLeakage() Obtain Whether information leakage prevention is enabled
 * @method void setAntiLeakage(integer $AntiLeakage) Set Whether information leakage prevention is enabled
 * @method integer getApiProtection() Obtain Whether API security is enabled
 * @method void setApiProtection(integer $ApiProtection) Set Whether API security is enabled
 * @method integer getRateLimit() Obtain Traffic limiting module switch
 * @method void setRateLimit(integer $RateLimit) Set Traffic limiting module switch
 * @method string getRequestId() Obtain The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 * @method void setRequestId(string $RequestId) Set The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
 */
class DescribeModuleStatusResponse extends AbstractModel
{
    /**
     * @var integer Whether web security rules are enabled
     */
    public $WebSecurity;

    /**
     * @var integer Whether access control rule is enabled
     */
    public $AccessControl;

    /**
     * @var integer Whether CC protection is enabled.
     */
    public $CcProtection;

    /**
     * @var integer Whether web tamper-proof is enabled
     */
    public $AntiTamper;

    /**
     * @var integer Whether information leakage prevention is enabled
     */
    public $AntiLeakage;

    /**
     * @var integer Whether API security is enabled
     */
    public $ApiProtection;

    /**
     * @var integer Traffic limiting module switch
     */
    public $RateLimit;

    /**
     * @var string The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    public $RequestId;

    /**
     * @param integer $WebSecurity Whether web security rules are enabled
     * @param integer $AccessControl Whether access control rule is enabled
     * @param integer $CcProtection Whether CC protection is enabled.
     * @param integer $AntiTamper Whether web tamper-proof is enabled
     * @param integer $AntiLeakage Whether information leakage prevention is enabled
     * @param integer $ApiProtection Whether API security is enabled
     * @param integer $RateLimit Traffic limiting module switch
     * @param string $RequestId The unique request ID, generated by the server, will be returned for every request (if the request fails to reach the server for other reasons, the request will not obtain a RequestId). RequestId is required for locating a problem.
     */
    function __construct()
    {

    }

    /**
     * For internal only. DO NOT USE IT.
     */
    public function deserialize($param)
    {
        if ($param === null) {
            return;
        }
        if (array_key_exists("WebSecurity",$param) and $param["WebSecurity"] !== null) {
            $this->WebSecurity = $param["WebSecurity"];
        }

        if (array_key_exists("AccessControl",$param) and $param["AccessControl"] !== null) {
            $this->AccessControl = $param["AccessControl"];
        }

        if (array_key_exists("CcProtection",$param) and $param["CcProtection"] !== null) {
            $this->CcProtection = $param["CcProtection"];
        }

        if (array_key_exists("AntiTamper",$param) and $param["AntiTamper"] !== null) {
            $this->AntiTamper = $param["AntiTamper"];
        }

        if (array_key_exists("AntiLeakage",$param) and $param["AntiLeakage"] !== null) {
            $this->AntiLeakage = $param["AntiLeakage"];
        }

        if (array_key_exists("ApiProtection",$param) and $param["ApiProtection"] !== null) {
            $this->ApiProtection = $param["ApiProtection"];
        }

        if (array_key_exists("RateLimit",$param) and $param["RateLimit"] !== null) {
            $this->RateLimit = $param["RateLimit"];
        }

        if (array_key_exists("RequestId",$param) and $param["RequestId"] !== null) {
            $this->RequestId = $param["RequestId"];
        }
    }
}
